/*
* Author: Chris Seguin
*
* This software has been developed under the copyleft
* rules of the GNU General Public License. Please
* consult the GNU General Public License for more
* details about use and distribution of this software.
*/
package org.acm.seguin.uml;
import java.awt.event.ActionEvent;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import org.acm.seguin.metrics.TypeMetricsFrame;
import org.acm.seguin.summary.TypeSummary;
/**
* Create a mouse listener for a type or a field or a title
*
*@author Chris Seguin
*@created July 7, 1999
*/
public class TypeMetricsListener extends PopupMenuListener {
// Instance Variables
private TypeSummary typeSummary;
/**
* Constructor for the TypeMetricsListener object
*
*@param panel Description of Parameter
*@param initMenu Description of Parameter
*@param initItem Description of Parameter
*/
public TypeMetricsListener(JPanel panel, JPopupMenu initMenu, JMenuItem initItem) {
super(initMenu, initItem);
if (panel instanceof UMLMethod) {
typeSummary = (TypeSummary) ((UMLMethod) panel).getSummary().getParent();
}
else if (panel instanceof UMLField) {
typeSummary = (TypeSummary) ((UMLField) panel).getSummary().getParent();
}
else if (panel instanceof UMLNestedType) {
typeSummary = (TypeSummary) ((UMLNestedType) panel).getSummary().getParent();
}
else {
typeSummary = (TypeSummary) ((UMLType) panel).getSummary();
}
}
/**
* A menu item has been selected
*
*@param evt Description of Parameter
*/
public void actionPerformed(ActionEvent evt) {
super.actionPerformed(evt);
new TypeMetricsFrame(typeSummary);
}
}